Luna McDuffing wrote:Porting from PS3 to PS4 may not be as strait forward affair as people think it is. One main reason is that the two systems have different architectures. Because of this it is not as simple as say upgrading one computer to a faster one. The way things are organized and the tools that are available differ sometimes greatly depending on how you coded your game. That is to say, how dependent on the architecture is your game? Let me give you some examples.
Lets say you are porting the game as is. that is no improvements in graphics, gameplay or anything. It will be the same as in the PS3 but now on the PS4. So, you open your new compiler and import all your code. You then hit the compile button which will translate your code to something the PS4 can understand. Right here is where you will start to run into all sorts of problems. Not all functions, libraries or utilities will be available in the new platform and also the ones that are available may have changed their behavior. For example on the PS3 sonny might have provided a function that controls all flying projectiles weapons. something like this.
projectileWeapon(parameter_1, parameter_2, ...., parameter_5);
However, for the PS4 they may have decided that it would be better to divided that function into two different ones because they figure that it might optimize the game better if you have one function for semi auto weapons versus fully automatic.
semiAutoWeapon(param1, param2,...);
fullyAutoWeapon(param1, param2,...)
Therefore the projectileWeapon() function no longer exist which will give you an error in your compiler. Now you have to go in and fix that taking all your code into account.
Then you run into libraries that no longer exists for the new platform. If for example the library you use to control the game sound is no longer avaialable then you have to either rewrite your sound code or try to use the available one assuming it even exists and it behaves the same.
Which brings us to yet another issue. Even though the game manage to compile it doesn't mean it will work the same. On the PS3 a scout can activate the cloack field and turn semi invisible. The same code on the PS4 may turn the scout into a bright orange beacon. Additionally your game may actually perform worst on the PS4 again depending on how you coded it. If you where too dependant on the PS3 architecture specifics, when you translate it to the PS4 those optimizations may be lost. One good example of this was when dual core computers for the general public came out. At that time 2Ghz single core processors where already availbale. Then they introduced the 1.5GHz dual core (2 cores). People started doing benchmarks and it turns out that quite often the dual core perform worst because the code they used was written to only use one core. So on your 2GHz machine it ran fine but on your dual core 1.5Ghz machine it litterally ran at 1.5GHz because it never benefited from the second core. If you want your code to use 2 cores then you ahve to write it with that in mind.
I remember when I got a copy of the leisure suit larry collections. This is a very old game and it ran fine on a new computer but, it had some unexpected problems. For example, there was a part in the game where larry went to the gym and you had to lift weights. Being that he is an out of shape guy once you bench pressed 6 times the next scene would be unlocked. However, because the game now was being run on a machine that was many times faster it took me like 300 bench presses to unlock the next scene. The reason was in the way the game was coded. It depended on the frame rate as opposed to some counter. Because the frame rate was considerably different on the newer machine the triggers didn't quite happen on the expected time thus it took the 300 tries to get it right.
Anyways, you made it this far and thus managed to get your game to compiled. Congratulations you are 20% of the way done. You see the coding part is the easy part. The labor intensive part is all the testing. Oh! and we are only talking about functionality here. Lets not even get into exploits. Just recently a game ( I think it was the order) was receiving a lot of customer complaints because in order to get out of the main lobby you had to walk through a door way. Well some funny people decided to stand right in front of the doorway thus blocking people from even being able to start their game. How do you test for these kind of things?!?
Aha! so now you got your game running on the PS4 and debugged to the point where its behavior is acceptable. Well, you a re still stuck with a PS3 game. Any improvement you want like say maps and or improved graphics have to be added. this may not be as simple as just adding a new skin. It may depend on the game engine being used. Dust uses the Unreal engine 3. What if you wanted new functionality in which case you need to upgrade to unreal engine 4. Well, you pretty much have to repeat all the steps I mentioned above because again, not everything will translate as a one to one (code to code).